/*
 * private-sreg.h
 *
 *  Created on: Sep 27, 2009
 *      Author: Orlando Arias
 *	   License: GPLv3
 *
 *   libhd44780 for Arduino Systems
 *   Copyright (C) 2009  Orlando Arias
 *
 *   This program is free software: you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation, either version 3 of the License, or
 *   (at your option) any later version.
 *
 *   This program is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *   GNU General Public License for more details.
 *
 *   You should have received a copy of the GNU General Public License
 *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */


#ifndef PRIVATESREG_H_
#define PRIVATESREG_H_

#include "hd44780-sreg.h"

/*
 *  The following preprocessor directives must be defined
 *  according to the shift register being used. The library
 *  then can be compiled. The default values should cover most
 *  modern shift registers. Consult your shift register's
 *  datasheet for details.
 *
 *  SREG_PROP_DELAY:	Propagation delay of the data in the shift register
 *  					in microseconds.
 *  SREG_PULSE_DELAY:	Length of clock pulse, in microseconds.
 *
 */

#define SREG_PROP_DELAY	16
#define SREG_PULSE_DELAY 13
/*
 *  These are 'low level' functions used within the library
 *  lcds_sendRaw()		sends raw data to the LCD, set RS to 0 or 1 accordingly
 *  lcds_SIPO()			Serial In Parallel Out controller for shift register operations
 */
void lcds_sendRaw(sLCD *l, uint8_t data, uint8_t rs_state);
void lcds_SIPO(sLCD *l, uint8_t data);

#endif /* PRIVATESREG_H_ */
